Mininet+Ryu安装教程 |
您所在的位置:网站首页 › ubuntu apt-get update 没有路由 › Mininet+Ryu安装教程 |
最近要做一个Mininet的网络环境,网络设备由Mininet来模拟,SDN控制器用Ryu来做,为了避免每次重新做再去翻查资料,我在这里系统地整理一遍 硬件需求我在 VMWare Workstation 16 Player虚拟机上运行的Ubuntu 22.04.1 硬件需求内存至少4G以上,我分配了8个GCPU至少2个核心,我分配了4个硬盘30G以上,我分配了100G 版本需求 软件版本Ubuntu22.04.1Mininet2.3.0Ryu4.34Python3.8Ovs2.9.8Openflow1.3 软件安装这两句随时准备着,出问题的时候先尝试一下 sudo apt update sudo apt upgrade Mininet安装 sudo apt-get install git git clone https://github.com/mininet/mininet cd mininet git tag git checkout -b mininet-2.3.0 2.3.0 cd .. mininet/util/install.sh -a第一个问题,端口拒绝访问: Cloning into 'openflow'... fatal: unable to connect to github.com: github.com[0: 20.27.177.113]: errno=Connection refused git config --global url.https://github.com/.insteadOf git://github.com/ mininet/util/install.sh -a安装完毕后测试: sudo mn --switch ovsbr --test pingall测试成功: Ryu安装接下来这几步我只是为了说明python3.10中运行Ryu的困难,我搞了一整天,甚至不小心删除了python3.10搞崩了Ubuntu,也没有搞定这些问题,嫌麻烦的同学直接跳到下载python3.8的部分 sudo apt install gcc libffi-dev libssl-dev libxml2-dev libxslt1-dev zlib1g-dev -y sudo pip install ryu cd ryu sudo pip install -r tools/pip-requires查看Ryu4.34安装与测试运行: sudo pip show ryu sudo ryu-manager第一个问题,eventlet版本太新: ImportError: cannot import name 'ALREADY_HANDLED' from 'eventlet.wsgi' (/home/jzjs/.local/lib/python3.10/site-packages/eventlet/wsgi.py) sudo pip uninstall eventlet sudo pip install eventlet==0.30.2第二个问题,Python版本太新: TypeError: cannot set 'is_timeout' attribute of immutable type 'TimeoutError' 解决办法:下载python3.8,并启用虚拟环境ryu-venv,重新安装Ryu,注意有些地方不能用sudo: sudo apt-get update sudo apt-get install software-properties-common sudo add-apt-repository ppa:deadsnakes/ppa sudo apt-get update sudo apt-get install python3.8 python3.8-venv python3.8-dev python3.8 -m venv ryu-venv source ryu-venv/bin/activate pip install ryu cd ryu pip install -r tools/pip-requires pip uninstall eventlet pip install eventlet==0.30.2重新查看Ryu4.34安装,这次确实是安装在python3.8/site-packages当中了: pip show ryu ryu-manager测试成功: 随时进入和关闭虚拟环境: source ryu-venv/bin/activate deactivate要是关闭后忘记了路径就敲下面的命令: find ~/ -name "activate" Ryu GUI安装Ryu GUI所需要的webob和routes库已经在下面的命令中安装完毕: pip install -r tools/pip-requires测试Ryu的GUI,注意,你的路径和我的不一样: cd /home/jzjs/ryu/ryu-venv/lib/python3.8/site-packages/ryu/app/gui_topology sudo ryu-manager --observe-links --verbose gui_topology.py浏览器打开http://0.0.0.0:8080后,发现有如下问题: OSError: Path does not exist or is not directory: '/home/jzjs/ryu/ryu-venv/lib/python3.8/site-packages/ryu/app/gui_topology/html/' Ryu的GUI找不到所需文件,为了解决这个问题,手动创建所需的目录并将GUI应用程序的源代码复制到那里: git clone https://github.com/osrg/ryu.git mkdir -p /home/jzjs/ryu/ryu-venv/lib/python3.8/site-packages/ryu/app/gui_topology/html/ cp -r ryu/ryu/app/gui_topology/html/* /home/jzjs/ryu/ryu-venv/lib/python3.8/site-packages/ryu/app/gui_topology/html/ sudo ryu-manager --observe-links --verbose gui_topology.py成功打开: Mininet和Ryu联动继续在上面的路径里,运行openflow1.3的交换机: ryu-manager --observe-links ryu/ryu/app/gui_topology/gui_topology.py ryu/ryu/app/simple_switch_13.py另外打开一个终端,输入Mininet的语句: sudo mn --controller remote,ip=127.0.0.1 --topo linear,3 --mac --switch ovsk --link tc刷新一下浏览器,可以看到下面的界面便大功告成: |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |